Remote computing systems can enable users to remotely access hosted resources. Servers on the remote computing systems can execute programs and transmit signals indicative of a user interface to clients that can connect by sending signals over a network conforming to a communication protocol such as the TCP/IP protocol. Each connecting client may be provided a remote presentation session, i.e., an execution environment that includes a set of resources. Each client can transmit signals indicative of user input to the server and the server can apply the user input to the appropriate session. The clients may use remote presentation protocols such as the Remote Desktop Protocol (RDP) to connect to a server resource.
In remote desktop scenarios the graphics content of a user's desktop located on a host computer (e.g., the server) is typically streamed to another computer (e.g., the client). The server and the client will exchange the desktop graphics data in a well defined protocol or format. In some cases the graphics data may be generated on a host virtual machine and when the client end point is on a guest virtual machine partition, the guest virtual machine may have to communicate through a communication channel such as a virtual bus to receive the graphics data from the host, which in turn is transmitted to the client. Such a setup can introduce latencies that can affect the remote client's user experience. Thus, other techniques are needed in the art to solve the above described problems.